#ifndef SPRITESPOOL_H
#define SPRITESPOOL_H

#include "sprite.h"

class SpritesPool
{
public:
    enum Size {
        Size_Small = 0,
        Size_Medium,
        Size_Large,
        SizesNum
    };

    enum Color {
        Color_Pink = 0,
        Color_Blue,
        Color_Yellow,
        Color_Green,
        ColorsNum
    };

    enum Spell {
        Spell_Fireball = 0,
        Spell_Frostball,
        Spell_MagicArrow,
        SpellsNum
    };

    SpritesPool();
    ~SpritesPool();

    void init();

    const Sprite &spell(Spell spell) const;
    const Sprite &mage(Color color) const;
    const Sprite &manaPotion(Size size) const;
    const Sprite &healthPotion(Size size) const;

private:
    Sprite _mages[ColorsNum];
    Sprite _spells[SpellsNum];
    Sprite _manaPotions[SizesNum];
    Sprite _healthPotions[SizesNum];
};

#endif // SPRITESPOOL_H
